# coding=utf-8

# 算法名称：冒泡排序算法（将无序队列按从小到大顺序排序）
# 算法原理：相邻元素比通过较和交换，将最大元素逐步“冒泡”到末尾。
# 算法描述： 1、用列表存储待排序数列
#          2、通过两重循环，比较列表前后相邻元素，如果前面比后面大，则交换这两个数。通过交换将最大元素逐步“冒泡”到末尾。
# 算法难点： 1、理解外循环次数（趟）和无序区范围。一趟排序完成后，无序区减少一个数，有序区增加一个数。
#          2、内循环只需对无序区进行比较。n个数需外循环n-i趟，每趟后无序区有n-i-1个数。
# 适用场景：数据量小或已基本有序的序列。实际应用较少，常用于教学演示。i
# 时间复杂度：最优：O(n)   平均：O(n²)    最差：O(n²)
# 空间复杂度：O(1)
# 稳定性：稳定
# 描述语言：Python3

# 初始化一个整数列表
lst = [235,5,567,99,125,4,56,456,87,11,2,66,1,345,76976,-1,0,66,324]

# 使用冒泡排序算法对列表进行排序
for i in range(0, len(lst) - 1):
    for j in range(0, len(lst) - i - 1):
        # 如果当前元素大于下一个元素，则交换它们的位置
        if lst[j] > lst[j + 1]:
            lst[j], lst[j + 1] = lst[j + 1], lst[j]

# 输出排序后的列表
print(lst)
